#include <stdio.h>

int main(int argc, char const *argv[])
{
    //打开文件
    FILE * file =  fopen("io.txt","a+");
    if(file == NULL)
    {
        printf("打开失败...\n");
    }
    else
    {
        printf("打开成功...\n");
    }

    //写一个字符

    /**
 * 作用：向文件写入一个字符
 * 参数1：字符的ASCII值
 * 参数2：文件流
 * 返回值：成功：写入字符的ASCII值，失败：EOF
 * 
 * int fputc (int __c, FILE *__stream);
 * */
    int fputc_result = fputc(97,file);
    if (fputc_result == EOF)
    {
        printf("写入字符失败 \n");
    }
    else
    {
        printf("写入字符成功：%c \n", fputc_result);
    }





    //写一个字符串
    /**
 * 作用：向文件写入一个字符串
 * 参数1：要写入的字符串
 * 参数2：文件流
 * 返回值：成功：非负整数(一般是1)，失败：EOF
 * int fputs (const char *__restrict __s, FILE *__restrict __stream)
 * */
    // 向文件写入一个字符串
    int fputs_result = fputs("\natguigu.com\n", file);
    if (fputs_result == EOF)
    {
        printf("写入字符串失败 \n");
    }
    else
    {
        printf("写入字符串成功: %d \n", fputs_result);
}



    /**
 * 作用：向文件写入格式化字符串
 * 参数1：文件流
 * 参数2：带点位的字符串
 * 参数...: n个占位对应的数据
 * 返回值：成功：写入的字符数，失败：EOF
 * int fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...)
 * */
    // 向文件格式化写入一个字符串
    int fprintf_result = fprintf(file, "%s来到尚硅谷学习%s", "张三", "嵌入式");
    if (fprintf_result == EOF)
    {
        printf("写入格式化字符串失败 \n");
    }
    else
    {
        printf("写入格式化字符串成功: %d \n", fprintf_result);
}


    //关闭文件
    int result = fclose(file);
    if(result == EOF)
    {
        printf("关闭文件失败。。。\n");
    }
    else
    {
        printf("关闭文件文件成功...\n");
    }
    return 0;
}
